13 research outputs found

    Aspect-oriented program testing : an annotated bibliography.

    Get PDF
    Research in aspect-oriented software testing has resulted in many approaches as reported in literature. A few papers have devoted to literature survey in this field of research. However, the survey only focuses on certain selected topic and particular approaches rather than providing a comprehensive set of references that cover most of the work related to aspect-oriented software testing as a whole. In this case, there is no work yet reported in the literature to tackle this shortage. Therefore, in this paper a collection of 81 references drawn from journals, conference and workshop proceedings, thesis, and technical reports on the subject of testing aspect-oriented software is presented. Each reference is accompanied by a summary of important finding. The aim when selecting the references was to cover as many related articles starting from the first work on the subject in 2002 until the year 2011. For this reason, the bibliography is intended to help the researcher or practitioner, who is relatively new, in gathering information on the subject. The bibliography is organized according to the following sections: general introduction; background on the subject; issues in testing aspect-oriented software; fault models and types; testing coverage criteria; aspect-oriented testing techniques; and automated support for testing aspect-oriented software

    Architectural knowledge sharing approaches: a survey research

    Get PDF
    Research on software architecture from different perspectives has been done for several years. However, Architectural Knowledge (AK), a relatively new field, has gained its increasing interest among the community. On this regard, various topics devoted to architectural knowledge, such as reusing, sharing, managing, and communicating are being studied. Among them, AK sharing brings new effective challenges and issues not present when studying other topics in architectural knowledge. Therefore, this paper surveys the current researches on AK sharing (pertaining to software architecture), the approaches, models that are being proposed, and issues that arise when sharing different AKs by different parties. By making survey on AK sharing approaches, a better understanding of these approaches and issues related in this area is provided so that it can be a penetrative resource for a fast training and educating in this area of SE. In addition, conclusion about current state of research in this area and future trends for AK sharing is identified

    AJcFgraph - AspectJ control graph builder for aspect-oriented software.

    Get PDF
    The ever-growing usage of aspect-oriented development methodology in the field of software engineering requires tool support for both research environments and industry. So far, tool support for many activities in aspect-oriented software development has been proposed, to automate and facilitate their development. For instance, the AJaTS provides a transformation system to support aspect-oriented development and refactoring. In particular, it is well established that the abstract interpretation of programs, in any paradigm, pursued in static analysis is best served by a high-level programs representation, such as Control Flow Graph (CFG). This is why such analysis can more easily locate common programmatic idioms for which helpful transformation are already known as well as, association between the input program and intermediate representation can be more closely maintained. However, although the current researches define the good concepts and foundations, to some extent, for control flow analysis of aspectoriented programs but they do not provide a concrete tool that can solely construct the CFG of these programs. Furthermore, most of these works focus on addressing the other issues regarding Aspect- Oriented Software Development (AOSD) such as testing or data flow analysis rather than CFG itself. Therefore, this study is dedicated to build an aspect-oriented control flow graph construction tool called AJcFgraph Builder. The given tool can be applied in many software engineering tasks in the context of AOSD such as, software testing, software metrics, and so forth

    Empirical evaluation of the fault detection effectiveness and test effort efficiency of the automated AOP testing approaches.

    Get PDF
    Testing process is a time-consuming, expensive, and labor-intensive activity in any software setting including aspect-oriented programming (AOP). To reduce the testing costs, human effort, and to achieve the improvements in both quality and productivity of AOP, it is desirable to automate testing of aspect-oriented programs as much as possible. In recent past years, a lot of research effort has been devoted to testing aspect-oriented programs but less effort has been dedicated to the automated AOP testing. This denotes that the current research on automated AOP testing is not sufficient and is still in a stage of infancy. In order to advance the state of the research in this area and to provide testers of AOP-based projects with a comparison basis, a detailed evaluation of the current automated AOP testing approaches in a thorough and experimental manner is required. Thus, the objective of this paper is to provide such evaluation of the current approaches. In this paper, we carry out an empirical study based on mutation analysis to examine four (namely Wrasp, Aspectra, Raspect, and EAT) existing automated AOP testing approaches, particularly their underlying test input generation and selection strategies, with regard to fault detection effectiveness. In addition, the approaches are compared in terms of required effort in detecting faults as part of efficiency evaluation. The experimental results and comparison provided insights into the effectiveness and efficiency of automated AOP testing with their respective strengths and weaknesses. Results showed that EAT is more effective than the other automated AOP testing approaches but not significant for all approaches. EAT was found to be significantly better than Wrasp at 95% confidence level (i.e. p<0.05), but not significantly better than Aspectra or Raspect. Concerning the test effort efficiency, Wrasp was significantly (p<0.05) efficient with requiring the lowest amount of test effort compared to the other approaches. Whereas, EAT showed to be not very efficient by recording the highest amount of test effort. This implies that EAT can currently be the most effective automated AOP testing approach but perhaps less efficient. More generally, search-based testing (as underlying strategy of EAT approach) might achieve better effectiveness but at the cost of greater test effort compared to random testing (as underlying strategy of other approaches)

    On the applicability of random testing for aspect-oriented programs.

    Get PDF
    Random Testing(RT) and its derivatives such as Adaptive Random Testing (ART ) are active and important research topics in software testing, which have also a niche in practical settings due to the merits they offers, e.g. fault-detection capacities at low cost, ease of implementation, reliability estimation, facility for automation and so forth. Inspired by these advantages, we believe the idea behind random testing can be worthwhile and attractive for testing aspect oriented programs since current research on testing of AOP, especially automated has not been adequately performed and is still in infancy. In this paper, we propose a preliminary approach to automated random testing of aspect-oriented programs, which are becoming an important part of software engineering theory and practice. This paper also includes a survey of applicable testing techniques and discussion of established testing methods in both area of Aspect-Oriented Programming (AOP) and Random Testing (RT)

    Sustainability in intelligent building environments using weighted priority scheduling algorithm

    Get PDF
    Intelligent buildings require various gadgets and sensors to automatically control the underlying environments with enhanced levels of comfort and efficiency. The ever-evolving technology and increasingly complex devices operated by heterogeneous systems have created challenges for intelligent building environments. Multi-platform type of heterogeneous systems functioning in intelligent building environments can lead to system failures with regard to deadlocks and unpredictable behavior, known as conflict occurrence. In this paper, we propose a new decision-making model with a weighted-priority scheduling algorithm that solves the conflicts to achieve efficient and sustainable communication response among heterogeneous systems. The experimental results demonstrate the enhanced response time of the model with conflict resolution. Furthermore, this model minimizes the external intervention to control the setting of such buildings

    Automatic randomized test generation strategy for aspect-oriented software

    Get PDF
    Software systems, nowadays, are used across the world to facilitate our daily life in different ways. Testing and verification of these software systems are very crucial with respect to safety, acceptance, and sidestepping failure damages. Aspect-oriented programming (AOP), as one of the prominent modularization techniques is gaining popularity as a methodology for contemporary software systems development. To realize the benefits of aspect-oriented programming and to produce validated and high quality aspect-oriented (AO) software, the programs developed by this programming paradigm should be effectively tested with attention to all of its characteristics, i.e. extension of new constructs and programming means for separation of concerns. The reason to emphasize is that, the AOP-specific defects stemmed from the unique characteristics of AOP can affect the quality of these programs in unusual ways and consequently diminish their general benefits, i.e. enhanced modularity and maintainability. In addition, these unique characteristics have made testing of AOP more sophisticated and challenging, though testing programs with simple functions is already hard and costly. To reduce the human effort and costs in assuring the correctness and general quality of aspect-oriented programs, it is desirable to automate testing of aspectoriented programs. In fact, automated testing has been a significant area of interest in current software testing research and has evolved greatly in recent years. However, it has to be said that there is comparatively little work on testing of AOP in the literature and very few and limited studies on automated testing of AOP. From a technical point of view, the existing studies on automated testing of AOP are not adequately effective in their underlying strategies used as the test generation has less AOP-specific focus and it is more founded on the knowledge of base code. In addition, lack of practical tools, lack of reliability and statistical evaluation from testing results with regard to the approach, difficulty in implementation of the strategy, and providing no automated test code generation are major issues associated with the existing studies. This obviously indicates an insufficiency of automated testing approaches, particularly automatic test generation, for the aspect-oriented programs at the current time and provides a primary motivation for leveraging the current techniques and/or developing new techniques for testing these programs. It is conjectured that applying recent techniques on testing and verification to AO-based systems is crucially important for making aspect-oriented software development (AOSD) success. As in the sequel, there is much advancement on testing and verification, like automated test generation using random-based and search-based techniques, coverage analysis, fault models, mutation analysis, and so forth. Many of those techniques are not yet applied or at least not properly investigated for AOP. Some would be trivial, but some would need some efforts to make them possible and leverage to testing of AOP. Random testing (RT) is an active and important research in software testing,which is a niche in practical settings due to its merits, e.g. fault-detection capacities at low cost, ease of implementation, reliability estimation of the software using the test results, and most importantly facility for automation. It can be said that RT is one of the most intuitive techniques for automatic test generation that has been widely studied and applied to test various programsfor decades and has formed the core parts of many useful testing approaches. On this regard, the idea behind random testing can be worthwhile and attractive to offer much promise in regard to AOP test automation problems since current research on testing of AOP, especially automated has not been adequately performed and is still in its infancy. So far, there is no mature testing approach in the context of AOP, considering the random testing techniques for automatic test generation of aspect-oriented programs, which can make this study as first in this sense. Therefore, to apply the random testing concept on AOP and to improve the degree of automation and the maturity of the automated AOP testing, in this thesis a rigorous automated test generation strategy, called RAMBUTANS, and its tool support based on the AspectJ programs were proposed. Furthermore, a thorough empirical study of nine AspectJ benchmark programs by means of mutation analysis was performed to compare RAMBUTANS and the four existing tomated AOP testing approaches (namely Wrasp, Aspectra, Raspect, and EAT) for testing aspects in terms of fault detection effectiveness and test effort efficiency. The results of experiment and statistical tests (p<0.01) presentedst rong evidence of the effectiveness and efficiency of the proposed strategy. Therefore, the study showed that the resulting randomized tests were reasonably good for AOP testing, thus the proposed strategy could be worthy of use as an effective and efficient AOP-specific automatic test generation strategy

    Automated test generation technique for aspectual features in AspectJ

    Get PDF
    Context: Aspect-oriented programming (AOP) has been promoted as a means for handling the modularization of software systems by raising the abstraction level and reducing the scattering and tangling of crosscutting concerns. Studies from literature have shown the usefulness and application of AOP across various fields of research and domains. Despite this, research shows that AOP is currently used in a cautious way due to its natural impact on testability and maintainability. Objective: To realize the benefits of AOP and to increase its adoption, aspects developed using AOP should be subjected to automated testing. Automated testing, as one of the most pressing needs of the software industry to reduce both effort and costs in assuring correctness, is a delicate issue in testing aspect-oriented programs that still requires advancement and has a way to go before maturity. Method: Previous attempts and studies in automated test generation process for aspect-oriented programs have been very limited. This paper proposes a rigorous automated test generation technique, called RAMBUTANS, with its tool support based on guided random testing for the AspectJ programs. Results: The paper reports the results of a thorough empirical study of 9 AspectJ benchmark programs, including non-trivial and larger software, by means of mutation analysis to compare RAMBUTANS and the four existing automated AOP testing approaches for testing aspects in terms of fault detection effectiveness and test effort efficiency. The results of the experiment and statistical tests supplemented by effect size measures presented evidence of the effectiveness and efficiency of the proposed technique at 99% confidence level (i.e. p < 0.01). Conclusion: The study showed that the resulting randomized tests were reasonably good for AOP testing, thus the proposed technique could be worth using as an effective and efficient AOP-specific automated test generation technique
    corecore